﻿Option Strict On
Option Explicit On 

Imports System.Windows.Forms
Imports IP.Core.IPUserService

Public Interface I_DEDataContainer

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Dùng để đổ dữ liệu 1 datarow ra form. Bạn đổ datarow ra form và làm thêm các việc bạn
    ''' muốn tại đây ( ví dụ: như hiện thị thêm các thông tin khác ngoài datarow)
    ''' </summary>
    ''' <param name="i_datarow"></param>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	3/16/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Sub datarow_2_form(ByVal i_datarow As DataRow)
    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Clear form cho bạn trước khi bạn ấn nút thêm, hoặc  đơn giản là xóa hết dữ liệu
    ''' </summary>
    ''' <remarks> 
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	3/16/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Sub clear_data_in_form()
    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Insert vào CSDL. Được gọi khi bạn ấn nút Lưu, trong trạng thái tạo mới
    ''' </summary>
    ''' <param name="o_us_object">đối tượng us object mà bạn phải cập nhật vào CSDL</param>
    ''' <param name="o_succeeded">có thành công hay không - trạng thái form sẽ thay đổi thếu thành công</param>
    ''' <remarks>
    ''' Chú ý: bạn phải handle exception và chăm sóc o_succeeded cẩn thận
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	3/16/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Sub submit_insert_to_db(ByRef o_us_object As US_Object, ByRef o_succeeded As Boolean)
    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Update vào CSDL
    ''' </summary>
    ''' <param name="i_curren_datarow"></param>
    ''' <param name="o_us_object">đối tượng us mà bạn phải cập nhật vào CSDL</param>
    ''' <param name="o_succeeded">có thành công hay không</param>
    ''' <remarks>
    ''' Chú ý: bạn phải handle exception và chăm sóc o_succeeded cẩn thận
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	3/16/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Sub submit_update_to_db(ByVal i_current_datarow As DataRow, ByRef o_us_object As US_Object, ByRef o_succeeded As Boolean)

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Xóa dòng hiện tại đi
    ''' </summary>
    ''' <param name="i_current_datarow"></param>
    ''' <param name="o_succeeded"></param>
    ''' <remarks>
    ''' Chú ý: bạn phải handle exception và chăm sóc o_succeeded cẩn thận
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	3/17/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Sub submit_delete_current(ByVal i_current_datarow As DataRow, ByRef o_succeeded As Boolean)

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Gọi trước khi insert new. Nếu bạn muốn cản trở chuyện này, thực hiện tại đây
    ''' </summary>
    ''' <param name="i_b_is_insertable">nếu bạn set là FALSE thì sẽ không tạo mới được</param>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	3/16/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Sub start_insert_new(ByRef o_b_is_insertable As Boolean)

    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Gọi trước khi sửa 1 hàng ( chuyển sang 1 sửa).
    ''' </summary>
    ''' <param name="i_current_datarow">datarow hiện tại, định sửa</param>
    ''' <param name="i_b_is_updatable">có sửa được không, nếu bạn không muốn cho user sửa, thì set bằng FALSE</param>
    ''' <remarks>
    ''' Nếu cần  - Kiểm tra, lock tại đây.
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	3/17/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Sub start_update(ByVal i_current_datarow As DataRow, ByRef o_b_is_updatable As Boolean)
    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Gọi trước khi xóa
    ''' </summary>
    ''' <param name="i_current_datarow">hàng chuẩn bị xóa</param>
    ''' <param name="i_b_is_deletable">nếu bạn không muốn xóa, thì set nó bằng FALSE</param>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	3/17/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Sub start_delete(ByVal i_current_datarow As DataRow, ByRef o_b_is_deletable As Boolean)
    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Gọi khi cancel insert hoach update
    ''' </summary>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    ''' 	[csung]	3/17/2005	Created
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Sub cancel_editing()
End Interface